ЗМІШАНЕ ПРОГРАМУВАННЯ НА МОВАХ С ТА АСЕМБЛЕР

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
КН
Кафедра:
Кафедра ЕПМС

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
СП
Варіант:
11

Частина тексту файла

ЛАБОРАТОНА РОБОТА №2 ТЕМА:ЗМІШАНЕ ПРОГРАМУВАННЯ НА МОВАХ С ТА АСЕМБЛЕР Мета роботи: оволодіти навиками створення програм, частини яких написані різними мовами програмування. Засвоїти правила взаємодії між програмними модулями різних мов програмування Завдання: Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу. Вхідні дані повинні вводитися з клавіатури, під час виконання програми в десятковому форматі зі знаком. Програма повинна складатися з двох модулів: головний модуль – створюється мовою С і має забезпечити ввід необхідних даних, виклик асемблерної процедури для обчислення виразу та вивід результату обчислень; модуль безпосередніх обчислень – здійснює всі необхідні арифметичні дії з використанням математичного співпроцесора; Переконатися у правильності роботи кожного модуля зокрема та програми загалом. Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. Дати відповідь на контрольні запитання. ВАРІАНТИ ЗАВДАНЬ № Вираз K  11 X=(A4-B2-K)*2+E4/4 311   Лістинг програми: //Модуль С #include <stdio.h> #include <conio.h> extrn "C" const dword k; extern "C" int calc(int,int,int); int main() { int a=0; int b=0; int e=0; int Result=0; printf("(A4-B2-K)*2+E4/4:\n\n");//4*(B2-C1)+D2/4+K printf("Please, enter your numbers:\n"); printf("A = "); scanf_s("%d",&a); printf("B = "); scanf_s("%d",&b); printf("E= "); scanf_s("%d",&e); Result=calc(a,b,e); printf("Result in ASM: %d\n",Result); printf("Result is C: %d\n", (a-b-k)*2+e/4); _getch(); } ;Модуль ASM .386 .model flat,c PUBLIC calc extern c k:dword .const PUBLIC k k dq 311 .code calc proc push ebp mov ebp,esp mov eax,dword ptr[ebp+8] ;записати в еах значення яке є в комірці [ebp+8] sub eax,dword ptr[ebp+12] ; відняти від [ebp+8] то що записано в [ebp+12] sub eax,k ;відняти К shl eax,1 ;1 зсув вліво(множення на 2) mov ebx,dword ptr[ebp+16]; записати в еах значення яке є в комірці [ebp+16] shr ebx,2 ;2 зсуви вправо (ділення на 4) add eax,ebx ;додати до еах ебх pop ebp ret calc endp end Висновок і результат роботи програми:  Висновок: познайомився з принципами роботи математичного співпроцесора і використав його можливості для обчислення арифметичних виразів.
Антиботан аватар за замовчуванням

10.03.2015 20:03

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини